perm filename CH1.BH2[ESS,JMC] blob
sn#061886 filedate 1973-09-09 generic text, type C, neo UTF8
COMMENT ā VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 INTRODUCTION TO TIMESHARING
C00011 ENDMK
Cā;
INTRODUCTION TO TIMESHARING
This manual describes the use of the PDP-10 computer system
at the Stanford Artificial Intelligence Laboratory. The computer is
operated exclusively as a time-sharing system, and this first
section of the manual is an introduction to time-sharing.
A time-sharing computer system includes the computer itself
(in our case a PDP-10 computer made by Digital Equipment
Corporation), user terminals for input to and output from the
computer (in our case about 60 keyboard and display terminals), and
a file system that keeps programs, data for the programs, reports,
and other data for the users.
The basic idea of time-sharing is to allow each user to
behave as though he had a computer to himself controlled by his
terminal. This is accomplished by having the computer cycle its
attention among the users wanting service in rotation. It does this
fast enough so that small requests are serviced in a time that
ranges from a small fraction of a second to a few seconds depending
on the number of people demanding service at that instant. If the
desired computation is long, the computer will do a bit of it, then
service other people, then return to it, and so on until the
computation is done. The time taken will depend on the size of the
computation and how busy the machine is.
At any time the user's terminal is interacting with some
program. These programs include the time-sharing Monitor, editors
used to prepare programs, documents, reports and other data, various
utility programs, and the user's own programs.
When you first sit down at a terminal, you will be
interacting with the Monitor, and you can always get back to the
Monitor by pressing the CALL key on the terminal. The first thing
you have to do is to "log in" which tells the monitor who you are so
it can connect you to the file directory that contains your files
and can do its accounting. The last thing you do is "log out" so
that the terminal and other resources you have been occupying can be
used by someone else.
You will have a certain quota of disk space and will be able
to keep files such as programs between uses of the computer.
Therefore, you will not ordinarily need any external form of storage
such as punched cards or magnetic tape. (Our computer doesn't even
have punched card equipment).
A user gets service from programs by typing commands to the
monitor. Some Monitor commands perform the service and leave you
again talking to the Monitor. Others put you into interaction with
a program and you have to interact with that program in the way
prescribed by it. When you are done with it, you go back to the
Monitor.
A typical task is to write a program in some computer
language such as SAIL (our dialect of ALGOL) or LISP and then debug
the program by running it, checking the results, and changing it
until it gives the right answers. This is accomplished in the
following steps:
1. First you run an editor. (We have several, but the
current favorite is called E). The editor puts your terminal into a
mode where what you type becomes the text of the program you are
writing. However, the editor gives you convenient facilities for
going back in your text and making changes that you think of as you
go along. Most people don't write their programs on paper but make
them up as they use the editor. When the program is ready to try you
exit from the editor back to the Monitor, and your program is a file
on the disk with a name you have given it. At any time, you can
re-edit this file to make changes in it. You can also print it on
the line printer to take a copy home, and when you don't need it any
more you can delete it.
2. Normally, the next step is to call a compiler to
translate the program from a source language into machine language
and the loader to load it into your "core image" and finally ask the
computer to run it. You can do these things as separate operations,
but facilities are provided for initiating all of this with a single
command.
3. When the computer runs your program, it may just produce
answers and stop. If you like the answers, perhaps you are done.
Otherwise, you go back to the editor to make changes in the "source
file" and try again. On the other hand, you may have written an
interactive program that writes on your terminal and expects you to
type input on the terminal which it then interprets and gives output
and asks for more input etc. Your program may read files and write
them. (Printed output is obtained by writing a file and printing it
later rather than by printing directly on the line printer. You
don't want to tie up the line printer, because your program is slow
or because it dies half way through writing or because it gets into
a loop and writes indefinitely.) It may display pictures on your
terminal. Finally, it may interact with the physical world by
reading pictures from one of the TV cameras attached to the computer
and by waving the mechanical arm.
4. In order to debug a program, you may have to do more than
just look at the output. Therefore, the time-sharing system has
facilities for examining and changing the contents of registers and
for putting break-points in programs.